IDE (Integrated Development Environment)
Hace tiempo existían interfaces IDE, también denominadas Advanced Technologies Attachment (ATA), específicamente en Parallel ATA (PATA), para conectar dispositivos de almacenamiento de datos como discos duros y unidades ópticas. Estas interfaces permitían que las unidades se conectaran a través de un bus, y dos unidades podían conectarse al mismo bus como maestro y esclavo (Master/Slave), con la configuración controlada por un jumper en la parte trasera. Si sólo se usaba una unidad en un cable o bus, entonces debía ser configurada como maestra.
Para que las unidades IDE pudieran operar correctamente, era necesario que contaran con un chip controlador que gestionara todas las transferencias. A este chip se le conocía como controlador IDE. Sin embargo, estos controladores solo podían manejar una velocidad máxima de 167 MB/s en la versión Ultra DMA 7 o Ultra ATA/167, lo que representaba una importante limitación en ese momento.
SCSI (Small Computer System Interface)
Durante una época, IDE convivió también con otra interfaz y otros controladores, como los SCSI. Esta interfaz fue usada principalmente para discos duros, y mejoraba la IDE en muchos aspectos, aunque era bastante más cara y se vería relegada a un sector más empresarial donde merecía la pena invertir un poco más, pero no era popular entre los PCs para casa.
Una de las últimas versiones de SCSI lanzadas fue la 3.4 FC-AL, que usaba un cable de fibra ópica (Fibre Channel Arbitrated Loop) que podía tener una longitud de hasta 10 km de largo sin pérdidas o un cable coaxial de hasta 24 metros. En cuanto a la velocidad máxima, era de 100 MB/s. Es decir, no superaba por mucho al IDE e incluso quedaba por detrás de algunas versiones más modernas.
Esto unido a que llegaron los SATA, que eran mucho más baratos y que incluso el SATA 1.0 ya superaba en velocidad al SCSI, terminó por desaparecer.
AHCI (Advanced Host Controller Interface)
Cuando los dispositivos de almacenamiento SATA aparecieron en escena, se introdujo un nuevo protocolo llamado AHCI para estandarizar los chips controladores. Esto solucionó algunos problemas técnicos y permitió un salto en la velocidad y el rendimiento, así como el soporte para nuevas unidades.
Sin embargo, no llegó sin problemas asociados. Por ejemplo, cuando aparecieron las primeras unidades SATA, el sistema operativo Windows XP no estaba preparado para ellas, ya que solo reconocía unidades IDE. Por lo tanto, al instalar el sistema operativo, era necesario descargar e introducir manualmente un controlador SATA desde un disquete para que pudiera reconocer el disco duro. Con el tiempo, las nuevas versiones de Windows y otros sistemas operativos incluyeron el controlador SATA de serie, eliminando la necesidad de descargar un controlador externo.
El propósito del estándar AHCI era permitir que diferentes tecnologías se conecten sin problemas de compatibilidad, eliminando la necesidad de controladores específicos para cada marca de unidad de disco duro. Desde hace varios años, AHCI ha sido el controlador más importante debido a sus características, pero también tiene limitaciones. Con el aumento en el rendimiento de las unidades de almacenamiento, especialmente con los nuevos SSD que pueden mejorar el rendimiento significativamente, AHCI se ha convertido en un cuello de botella.
Aunque es cierto que AHCI presentaba una menor latencia que IDE, que era de 6 microsegundos, sus velocidades estaban limitadas. En la versión SATA 3.0, la velocidad máxima alcanzaba los 6 Gb/s o 600 MB/s, mientras que en SATA Express llegaba hasta los 16 Gbit/s o 1.97 GB/s. A pesar de que los primeros SSD SATA3 y eSATA utilizaban el controlador AHCI, sería abandonado para poder usar NVMe en los modelos SSD más potentes…
NVMe (Non-Volatile Memory Express)
Con la aparición de las unidades SSD de alto rendimiento, se hizo necesaria una solución que pudiera maximizar su velocidad y eficiencia. Es aquí donde entra en juego la estandarización del protocolo NVMe, el cual fue impulsado por empresas líderes del sector como Intel, Micron, Marvell, Samsung, LSI, Sandisk y Dell, entre otras.
NVMe hizo su debut en 2011 y desde entonces se ha convertido en el controlador preferido para las unidades SSD más potentes del mercado, tanto para uso doméstico como empresarial. La razón detrás de su éxito es su protocolo/bus PCIe o PCI Express de alta velocidad, específicamente uno de x4 o cuatro carriles.
Gracias a esto, NVMe ofrece un gran ancho de banda, una menor latencia y velocidades de transferencia extremadamente rápidas, permitiendo un rendimiento óptimo de los chips de memoria flash NAND actuales. Con NVMe, los SSD pueden aprovechar todo su potencial y tener una interfaz y controlador de alto nivel.
Por supuesto, en muchos equipos actuales sigue existiendo la AHCI para las unidades SATA, como pueden ser HDDs o SSDs que aún siguen usando este estándar, o incluso unidades ópticas, etc. Por tanto, al igual que ocurría con el IDE, el AHCI sigue estando presente el el firmware de muchas placas base actuales.
Al igual que ocurrió con AHCI, para poder aprovechar NVMe es necesario que el sistema operativo tenga soporte nativo para este controlador. Este soporte se implementó a partir de Windows 10 y también está disponible en versiones de macOS, Linux, ChromeOS, FreeBSD y otros sistemas operativos. Además, para que el BIOS/UEFI pueda detectar la unidad durante el arranque, también debe ser compatible con NVMe, algo que ya está disponible en las versiones actuales de firmware de todas las placas base que soportan unidades NVMe.
En cuanto a las velocidades que puede alcanzar un controlador NVMe, depende de la versión PCIe en la que se base. Por ejemplo, las unidades SSD M.2 NVMe con PCIe 3.0 o Gen 3 pueden alcanzar hasta 985 MB/s por cada carril, lo que significa que, al multiplicarlo por x4, se puede obtener una velocidad máxima de hasta 4 GB/s. Si se trata de PCIe 4.0 o Gen 4, la velocidad es de 1,9 GB/s por carril, lo que, nuevamente, multiplicado por x4, alcanza velocidades de 7,8 GB/s. Con las nuevas unidades PCIe 5.0 o Gen 5, se espera alcanzar velocidades de hasta 3,9 GB/s por cada carril, lo que permitiría un máximo de 15,8 GB/s.
RAID (Redundant Array of Inexpensive Disk)
Mientras que los controladores anteriores se suelen implementar mediante hardware, es decir, mediante chips en la placa base (ver los componentes) o en las propias unidades de almacenamiento, en el caso de RAID se pude implementar también por software, de hecho es bastante habitual, aunque por hardware mejora el rendimiento de estos sistemas redundantes, ya que no se tendrá que encargar de ello la CPU.
Este controlador RAID no está diseñado para conectar unidades de diferentes velocidades o capacidades. Su función es permitir la conexión de múltiples unidades HDD o SSD redundantes, que pueden ser configuradas en RAID0, RAID1, RAID5, RAID10, entre otras, dependiendo del controlador.